package com.ucode.crm.mapper;

import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.ucode.crm.mode.Business;
import com.ucode.crm.vo.BusinessVo;

public interface BusinessMapper {
    /**
     * 新增
     * @author liliang
     * @date 2020年6月24日
     * @param business
     * @return
     */
    public int insert(Business business);
    /**
     * 更新
     * @author liliang
     * @date 2020年6月24日
     * @param business
     * @return
     */
    public int update(Business business);
    /**
     * 转让
     * @author liliang
     * @date 2020年6月24日
     * @param id
     * @param ownerUserId
     * @param oldOwnerUserId
     * @return
     */
    public int transfer(@Param("id")Long id,@Param("ownerUserId")Long ownerUserId,@Param("oldOwnerUserId")Long oldOwnerUserId);
    /**
     * 更新跟进次数
     * @author liliang
     * @date 2020年6月24日
     * @param id
     * @param delta
     * @return
     */
    public int incrFollowupCount(@Param("id")Long id,@Param("delta")Integer delta);
    
    /**
     * 同步客户负责人
     * @author liliang
     * @date 2020年6月24日
     * @param customerId
     * @param ownerUserId
     * @return
     */
    public int updateCustomerOwnerUser(@Param("customerId")Long customerId,@Param("ownerUserId")Long ownerUserId);
    
    /**
     * 更新协作人
     * @author liliang
     * @date 2020年5月14日
     * @param id
     * @param id
     * @return collaborator
     */
    public int updateCollaborator(@Param("id")Long id, @Param("collaborator")String collaborator);
    /**
     * 逻辑删除
     * @author liliang
     * @date 2020年6月24日
     * @param id
     * @return
     */
    public int deleteByLogic(Long id);
    /***
     * 恢复
     * @author liliang
     * @date 2020年6月24日
     * @param ids
     * @return
     */
    public int recover(List<Long> ids);
    /**
     * 物理删除
     * @author liliang
     * @date 2020年6月24日
     * @param ids
     * @return
     */
    public int delete(List<Long> ids);
    /**
     * 主键查询
     * @author liliang
     * @date 2020年6月24日
     * @param id
     * @return
     */
    public Business findById(Long id);
    /**
     * 主键集合查询
     * @author liliang
     * @date 2020年6月24日
     * @param ids
     * @return
     */
    public List<Business> findByIds(List<Long> ids);
    /**
     * 主键查询
     * @author liliang
     * @date 2020年6月25日
     * @param id
     * @return
     */
    public BusinessVo findVoById(Long id);
    /**
     * 主键集合查询
     * @author liliang
     * @date 2020年6月25日
     * @param ids
     * @return
     */
    public List<BusinessVo> findVoByIds(List<Long> ids);
    
    /**
     * 查询客户商机列表
     * @author liliang
     * @date 2020年6月24日
     * @param customerId
     * @return
     */
    public List<BusinessVo> queryListByCustomerId(Long customerId);
}
